chore(vscode): move the extension to the pymodel.pythinker Marketplace id - #78
Conversation
…e id pythoughts.pythinker-code@0.8.8 was live on the Visual Studio Marketplace and Open VSX on 2026-08-08 and has since been deleted. Both publisher pages exist and list zero extensions, and vsce, the gallery API and the Open VSX API all report not-found. The Marketplace permanently reserves the name of a removed extension even against its original publisher, which is why every one of the six targets on 0.18.0 failed with 'The extension pythinker-code already exists in the Marketplace'. The name cannot be recovered, so the extension takes a new one: pythinker, matching the CLI binary. The manifest name is also the pnpm workspace name, so the release workflow and the extension release script move with it. The ten pythinker.* command ids, the publisher, and the display name are unchanged.
There was a problem hiding this comment.
elkaix has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (14)
📝 WalkthroughWalkthroughThe VS Code extension identifier changes from ChangesVS Code Marketplace ID rename
Estimated code review effort: 2 (Simple) | ~10 minutes Merge Risk: ⚪ Minimal · up to This PR updates the VS Code Marketplace/workspace identifier and matching release and documentation references; no actionable merge-blocking risk remains after normal checks. Possibly related PRs
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
Comment |
commit: |
This PR was opened by the [Changesets release](https://github.com/changesets/action) GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated. # Releases ## @pymodel/pythinker-code@0.19.0 ### Minor Changes - [#80](#80) [`17818ea`](17818ea) - Match the desktop app's sidebar, collapse animation, empty-state visuals, and typography to the desktop design. - [#80](#80) [`17818ea`](17818ea) - Add a Desktop app section to web settings with automatic updates on by default, a manual update check, and a restart-to-update action. - [#80](#80) [`17818ea`](17818ea) - Refresh the web UI accent color and show the animated mascot on workflow cards, the activity spinner, and the empty state. ### Patch Changes - [#80](#80) [`17818ea`](17818ea) - Fix sessions failing to load with an invalid event journal error after questions or approvals were resolved. - [#80](#80) [`17818ea`](17818ea) - Run on Node 20 and newer by only re-executing for FFI support on Node 26.4+. - [#77](#77) [`26f3d18`](26f3d18) - Keep releases visible in the update channel when a CDN rebuild request is temporarily lost. - [#78](#78) [`86a4f9a`](86a4f9a) - Change the VS Code extension Marketplace ID to `pymodel.pythinker`. Existing users must install the extension again under the new ID because Microsoft permanently retired the previous ID. - [#80](#80) [`17818ea`](17818ea) - Skip invalid sessions during listing instead of failing the whole list. - [#80](#80) [`17818ea`](17818ea) - Highlight the update notice in the terminal status bar with the warning color. - [#77](#77) [`26f3d18`](26f3d18) - Use a scoped GitHub App token for Homebrew tap updates. - [#80](#80) [`17818ea`](17818ea) - Fix duplicated streamed transcript copies and lost paragraph breaks in the web UI. ## @pymodel/pythinker-code-sdk@1.0.0 ### Major Changes - [#80](#80) [`17818ea`](17818ea) - Add question, approval, and prompt lifecycle events to the SDK session event types. ## @pymodel/pythinker-desktop@0.1.1 ### Patch Changes - [#81](#81) [`8717330`](8717330) - Bound the Windows process-tree kill so a stalled taskkill cannot freeze desktop shutdown - [#81](#81) [`8717330`](8717330) - Fix Windows runtime staging and skip empty signing credentials in the desktop release workflow - [#81](#81) [`8717330`](8717330) - Stage the desktop Host closure inside the workspace so pnpm deploy resolves the target on Windows - [#81](#81) [`8717330`](8717330) - Add the Windows NSIS installer target, release script, and release workflow job - [#81](#81) [`8717330`](8717330) - Fix Windows process-tree shutdown, packaged-runtime guards, and taskbar identity in the desktop app ## pythinker@0.9.2 ### Patch Changes - Updated dependencies [[`17818ea`](17818ea)]: - @pymodel/pythinker-code-sdk@1.0.0 <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Added desktop update settings, manual update checks, and restart-to-update support. - Added SDK events for question, approval, and prompt lifecycles. - Refreshed web visuals with updated accents and animated mascot placement. - Improved Windows desktop packaging, runtime handling, shutdown behavior, and taskbar identity. - **Bug Fixes** - Improved session recovery, invalid-session handling, update-channel resilience, and streamed transcript formatting. - Added Node.js compatibility improvements and more reliable Homebrew update authentication. - **Releases** - Published desktop 0.1.1, code 0.19.0, VS Code 0.9.2, and SDK 1.0.0. <!-- end of auto-generated comment: release notes by coderabbit.ai --> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Related Issue
No issue — the problem is described below.
Problem
The 0.18.0 release failed all six VS Code targets with:
pythoughts.pythinker-code@0.8.8was published to both the Visual Studio Marketplace and Open VSXon 2026-08-08 (visible in the release run for #44) and has since been deleted. Evidence:
marketplace.visualstudio.com/publishers/pythoughtsand/pymodelreturn 200 and listzero extensions.
vsce show pythoughts.pythinker-codeandvsce show pymodel.pythinker-code→ not found.filterType: 7, and a text search forpythinker) → no results.Extension not foundfor both namespaces.marketplace.visualstudio.com/items?itemName=…→ 404 for both (a known-good control,ms-python.python, returns 200, so the probe is calibrated).The Marketplace permanently reserves the name of a removed extension, even against its original
publisher. The old id is unrecoverable, so the extension needs a new one. This blocked 0.17.1 as
well — the extension has not shipped to either registry since the org migration.
What changed
apps/vscode/package.jsonname:pythinker-code→pythinker. The Marketplace id becomespymodel.pythinker, matching the CLI binary name.Unchanged on purpose:
publisher(pymodel),displayName("Pythinker Code"), the npm scope, theCLI, and all ten
pythinker.*contributed command ids — Marketplace identity and runtime commandids are different namespaces and only the former moves. Renaming the command ids would break every
keybinding and menu contribution.
The manifest
nameis also the pnpm workspace package name, so the rename mechanically forces:.github/workflows/release.yml— threepnpm --filter pythinker-code run …calls (package,publish:vsix, publish:ovsx) would fail with "no projects matched".
apps/vscode/scripts/release-extension.mjs— seven filter references plus the hardcodedMarketplace query identifier.
Run:header comments underapps/vscode/test/that print a command that no longer works.Install links and snippets updated in
apps/vscode/README.mdandapps/site/src/App.vue.flake.nixneeds no change —apps/vscodeis in neitherworkspacePathsnorworkspaceNames.Verification
Every check confirmed red on the unchanged tree before being trusted:
MANIFEST_OK 10— name, publisher and displayName correct, and all ten command ids still startwith
pythinker.(asserts a non-zero command count first, so an empty list cannot satisfy it).pymodel.pythinker-code/pythoughts.pythinker-codeanywhere in the repo.--filter pythinker-codeinapps/vscode,.github, orpackage.json.pnpm --filter pythinker exec … | grep -q FILTER_RESOLVES— the new workspace name resolves.(Piped through
grep -qon purpose: barepnpm --filterprints "No projects matched" and stillexits 0, so the obvious form of this check cannot fail.)
pnpm --filter pythinker run typecheck(both the extension and webview-ui tsconfigs) → exit 0.pnpm run lint→ exit 0.Note for the next release: a reserved-because-deleted name is invisible to every public query,
so
pythinkerbeing free can only be proven by the publish itself. If it collides too, the publishscript skips already-published targets, so a re-run after a second rename is safe.
Checklist
gen-changesetsskill, or this PR needs no changeset.gen-docsskill, or this PR needs no doc update.Summary by CodeRabbit
Release Update
pymodel.pythinker.Documentation